package persistent.dao;

import java.util.List;

import model.TCloudAnecdote;
import model.TCloudAnecdoteReview;
import model.VCloudAnecdoteReview;

/**
 * 轶事业务接口
 * @author 徐震霖
 *
 */
public interface CloudAnecdoteDAO {

	/**
	 * 保存轶事（发送状态为：待发送）
	 * @param anecdote 轶事对象
	 * @return 成功返回true，失败返回false
	 */
	public boolean saveAnecdote(TCloudAnecdote anecdote);
	
	/**
	 * 修改一条轶事信息
	 * @param anecdote 轶事类型对象
	 * @return 成功返回true，失败返回false
	 */
	public boolean updateAnecdote(TCloudAnecdote anecdote);
	
	/**
	 * 发送轶事（发送状态为：以发送）
	 * @param anecdote 轶事对象
	 * @return 成功返回true，失败返回false
	 */
	public boolean sendAnecdote(TCloudAnecdote anecdote, Integer[] stuid);
	
	/**
	 * 发送已保存的轶事
	 * @param anecdoteid 轶事id
	 * @return 成功返回true，失败返回false
	 */
	public boolean sendSaveAnecdote(int anecdoteid, Integer[] stuid);
	
	/**
	 * 删除一条轶事
	 * @param anecdoteid 轶事id
	 * @return 成功返回true，失败返回false
	 */
	public boolean deleteAnecdote(int anecdoteid);
	
	/**
	 * 添加一条回复信息
	 * @param review 回复信息对象
	 * @return 成功返回true，失败返回false
	 */
	public boolean addAnecdoteReview(TCloudAnecdoteReview review, TCloudAnecdote anecdote);
	
	/**
	 * 通过轶事id得到一条轶事记录
	 * @param aid 轶事id
	 * @return 成功返回轶事TCloudAnecdote的对象，失败返回null
	 */
	public TCloudAnecdote getTAndecdoteById(int aid);
	
	/**
	 * 根据id得到一条轶事（包含回复）信息
	 * @param aid 轶事id
	 * @return 成功返回轶事VCloudAnecdoteReview的对象，失败返回null
	 */
	public VCloudAnecdoteReview getAnecdoteByid(int aid);
	
	/**
	 * 根据用户id得到该用户所有待发或已发轶事
	 * @param userid 用户id
	 * @param sendStutas 发送状态（1001-已发， 1002-待发）
	 * @param schoolid 学校id
	 * @return 成功返回List<VCloudAnecdoteReview>的对象列表，失败返回null
	 */
	public List<VCloudAnecdoteReview> getAnecdotesByUseridSending(int userid, int sendStutas, String schoolid);
	
	/**
	 * 根据用户id得到该用户所有待发或已发轶事
	 * @param userid 用户id
	 * @param handlerStatus 处理状态（1001-已处理， 1002-未处理）
	 * @param schoolid 学校id
	 * @return 成功返回List<VCloudAnecdoteReview>的对象列表，失败返回null
	 */
	public List<VCloudAnecdoteReview> getAnecdotesByUseridHandler(int userid, int handlerStatus, String schoolid);
	
	/**
	 * 根据查询条件得到该用户所有待发或已发轶事
	 * @param strWhere 查询条件
	 * @param schoolid 学校id
	 * @return 成功返回List<VCloudAnecdoteReview>的对象列表，失败返回null
	 */
	public List<VCloudAnecdoteReview> getAnecdotesByStrWhere(String strWhere);
	
	/**
	 * 根据查询条件得到一个带分页的事项
	 * @param strWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize每页数
	 * @return 成功返回List<VCloudAnecdoteReview>的对象列表，失败返回null
	 */
	public List<VCloudAnecdoteReview> getAnecdotesByStrWhere(String strWhere,int currentPage, int pageSize);
	
	/**
	 * 得到摸个教师所带的班级（去除重复）
	 * @param strwhere 查询条件
	 * @return 成功返回VCloudTeacherUserClass列表，失败返回null
	 */
	/*public List<VCloudTeacherUserClass> getTeacherUserClassByWhere(String strwhere);*/
}
